const gulp = require("gulp"),
	minifyCss = require("gulp-clean-css"),
	uglify = require("gulp-uglify"),
	htmlmin = require("gulp-htmlmin"),
	babel = require("gulp-babel"),
	connect = require("gulp-connect");

gulp.task("css",()=>{
	gulp.src("src/css/*.css")
		.pipe(minifyCss())
		.pipe(gulp.dest("dist/css"))
		.pipe(connect.reload());
});

gulp.task("js",()=>{
	gulp.src("src/js/*.js")
		.pipe(babel({
			presets:['env']
		}))
		.pipe(uglify())
		.pipe(gulp.dest("dist/js"))
		.pipe(connect.reload());
});

gulp.task("html",()=>{
	gulp.src("src/**/*.html")
		.pipe(htmlmin({collapseWhitespace:true}))
		.pipe(gulp.dest("dist"))
		.pipe(connect.reload());
});

gulp.task("copy-images",()=>{
	gulp.src("src/images/**/*.*")
		.pipe(gulp.dest("dist/images"));
});
gulp.task("copy-lib",()=>{
	gulp.src("src/lib/**/*.*")
		.pipe(gulp.dest("dist/lib"));
});
gulp.task("copy",["copy-images","copy-lib"]);

gulp.task("webserver",()=>{
	connect.server({
		root:'dist',
		livereload:true
	});
});

gulp.task("watch",()=>{
	gulp.watch("src/css/*.css",["css"]);
	gulp.watch("src/js/*.js",["js"]);
	gulp.watch("src/**/*.html",["html"]);
});

gulp.task("default",["css","js","html","copy","webserver","watch"]);